<extend name="Public/base"/>



<block name="body">

    <!-- 标题栏 -->

    <div class="main-title">

        <h2>数据备份</h2>

    </div>

    <!-- /标题栏 -->



    <div class="cf">

        <a id="export" class="btn" href="javascript:;" autocomplete="off">立即备份</a>

        <a id="optimize" class="btn" href="{:U('optimize')}">优化表</a>

        <a id="repair" class="btn" href="{:U('repair')}">修复表</a>

    </div>



    <!-- 应用列表 -->

    <div class="data-table table-striped">

        <form id="export-form" method="post" action="{:U('export')}">

            <table>

                <thead>

                    <tr>

                        <th width="48"><input class="check-all" checked="chedked" type="checkbox" value=""></th>

                        <th>表名</th>

                        <th width="120">数据量</th>

                        <th width="120">数据大小</th>

                        <th width="160">创建时间</th>

                        <th width="160">备份状态</th>

                        <th width="120">操作</th>

                    </tr>

                </thead>

                <tbody>

                    <volist name="list" id="table">

                        <tr>

                            <td class="num">

                                <input class="ids" checked="chedked" type="checkbox" name="tables[]" value="{$table.name}">

                            </td>

                            <td>{$table.name}</td>

                            <td>{$table.rows}</td>

                            <td>{$table.data_length|format_bytes}</td>

                            <td>{$table.create_time}</td>

                            <td class="info">未备份</td>

                            <td class="action">

                                <a class="ajax-get no-refresh" href="{:U('optimize?tables='.$table['name'])}">优化表</a>&nbsp;

                                <a class="ajax-get no-refresh" href="{:U('repair?tables='.$table['name'])}">修复表</a>

                            </td>

                        </tr>

                    </volist>

                </tbody>

            </table>

        </form>

    </div>

    <!-- /应用列表 -->

</block>



<block name="script">

    <script type="text/javascript">

    (function($){

        var $form = $("#export-form"), $export = $("#export"), tables

            $optimize = $("#optimize"), $repair = $("#repair");



        $optimize.add($repair).click(function(){

            $.post(this.href, $form.serialize(), function(data){

                if(data.status){

                    updateAlert(data.info,'alert-success');

                } else {

                    updateAlert(data.info,'alert-error');

                }

                setTimeout(function(){

	                $('#top-alert').find('button').click();

	                $(that).removeClass('disabled').prop('disabled',false);

	            },1500);

            }, "json");

            return false;

        });



        $export.click(function(){

            $export.parent().children().addClass("disabled");

            $export.html("正在发送备份请求...");

            $.post(

                $form.attr("action"),

                $form.serialize(),

                function(data){

                    if(data.status){

                        tables = data.tables;

                        $export.html(data.info + "开始备份，请不要关闭本页面！");

                        backup(data.tab);

                        window.onbeforeunload = function(){ return "正在备份数据库，请不要关闭！" }

                    } else {

                        updateAlert(data.info,'alert-error');

                        $export.parent().children().removeClass("disabled");

                        $export.html("立即备份");

                        setTimeout(function(){

        	                $('#top-alert').find('button').click();

        	                $(that).removeClass('disabled').prop('disabled',false);

        	            },1500);

                    }

                },

                "json"

            );

            return false;

        });



        function backup(tab, status){

            status && showmsg(tab.id, "开始备份...(0%)");

            $.get($form.attr("action"), tab, function(data){

                if(data.status){

                    showmsg(tab.id, data.info);



                    if(!$.isPlainObject(data.tab)){

                        $export.parent().children().removeClass("disabled");

                        $export.html("备份完成，点击重新备份");

                        window.onbeforeunload = function(){ return null }

                        return;

                    }

                    backup(data.tab, tab.id != data.tab.id);

                } else {

                    updateAlert(data.info,'alert-error');

                    $export.parent().children().removeClass("disabled");

                    $export.html("立即备份");

                    setTimeout(function(){

    	                $('#top-alert').find('button').click();

    	                $(that).removeClass('disabled').prop('disabled',false);

    	            },1500);

                }

            }, "json");



        }



        function showmsg(id, msg){

            $form.find("input[value=" + tables[id] + "]").closest("tr").find(".info").html(msg);

        }

    })(jQuery);

    </script>

</block>